home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Graphics / Utility / ARTAbrot 1.1 / ComUtil_ARTAbrot.h < prev    next >
Text File  |  1993-11-22  |  10KB  |  226 lines

  1. /*   PComUtil_ARTAbrot_prj                Common and Utilitys
  2.  
  3. Name:  PComUtil_ARTAbrot_prj.h  
  4. Function:  Common for the Marksman™ specific code.
  5. History: 8/18/93 Original by George Warner
  6.    */
  7.  
  8. #include <SANE.h> /* Math definitions */
  9. #include <Values.h> /* Math type sizes */
  10. #include <Types.h> /* Basic Macintosh type definitions */
  11. #include <Memory.h> /* Memory structure types */
  12. #include <Resources.h> /* Resource file routines */
  13. #include <Quickdraw.h> /* QuickDraw types and routines */
  14. #include <Fonts.h> /* Font types and routines */
  15. #include <Events.h> /* Event types and routines */
  16. #include <Controls.h> /* Control routines */
  17. #include <Windows.h> /* Windows */
  18. #include <Menus.h> /* Menus */
  19. #include <TextEdit.h> /* Edit text */
  20. #include <Dialogs.h> /* Dialogs */
  21. #include <Desk.h> /* Desktop routines */
  22. #include <ToolUtils.h> /* Toolbox utilitys */
  23. #include <SegLoad.h> /* Init files selected */
  24. #include <OSUtils.h> /* OS utilitys */
  25. #include <Files.h> /* File routines */
  26. #include <OSEvents.h> /* OS events */
  27. #include <DiskInit.h> /* Floppy disk routines */
  28. #include <Packages.h> /* Extra packages */
  29. #include <Lists.h> /* List manager */
  30. #include <GestaltEqu.h> /* Gestalt definitions */
  31. #include <QuickDraw.h>  /* Color QD routines */
  32. #include <QDOffscreen.h> /* Color GWorld routines */
  33. #include <Sound.h> /* Sound manager */
  34. #include <Printing.h> /* Print manager */
  35.  
  36. /* ======================================================= */
  37.  
  38.  
  39. /* Basic definitions */
  40. #define TRUE        1                                /* Boolean true */ 
  41. #define FALSE        0                                /* Boolean false */ 
  42.  
  43. #define NIL        0L                                /* Used for empty pointers and handles */ 
  44.  
  45. #define SCROLLBARWIDTH 15
  46.  
  47. /* User event definitions */
  48. #define UserEvent_None     0                        /* No user events available */
  49. #define UserEvent_Open_Window     1                /* Open Window or modeless dialog */
  50. #define UserEvent_Close_Window     2                /* Close Window or modeless dialog */
  51. #define UserEvent_Activate_Window     3            /* Activate Window or modeless dialog */
  52. #define UserEvent_Deactivate_Window     4            /* Deactivate Window or modeless dialog */
  53. /* IDs 0 to 999 reserved for Marksman™, all others available for special use */
  54.  
  55. /* Menu list resource IDs */
  56. #define Res_Menu_Apple     256                        /* Menu resource ID */
  57. #define MItem_About     1
  58.  
  59. #define Res_Menu_File     257                        /* Menu resource ID */
  60. #define MItem_Quit2     1
  61.  
  62. #define Res_Menu_Commands     258                    /* Menu resource ID */
  63. #define MItem_Enter_Coordinat     1
  64. #define MItem_Display     2
  65.  
  66.  
  67. /* Window resource IDs, also controls grouped with the appropiate window */
  68.  
  69. #define Res_MD_About_ARTAbrot     258                /* Modeless Dialog */
  70. #define Res_Dlg_OK2     1                            /* ...Button */
  71. #define Res_Dlg_Static_Text5     530                /* ...Static text */
  72. #define Res_Dlg_Picture     2                    /* ...Picture button */
  73.  
  74. #define Res_MD_Enter_Coordinat     257                /* Modeless Dialog */
  75. #define Res_Dlg_OK     1                            /* ...Button */
  76. #define Res_Dlg_Cancel     2                        /* ...Button */
  77. #define Res_Dlg_Static_Text4     521                /* ...Static text */
  78. #define Res_Dlg_Static_Text3     520                /* ...Static text */
  79. #define Res_Dlg_Static_Text2     518                /* ...Static text */
  80. #define Res_Dlg_Static_Text     517                /* ...Static text */
  81. #define Res_Dlg_Edit_Text4     3                    /* ...Edit text - iterations */
  82. #define Res_Dlg_Edit_Text3     4                    /* ...Edit text - width */
  83. #define Res_Dlg_Edit_Text2     5                    /* ...Edit text - Y coord. */
  84. #define Res_Dlg_Edit_Text     6                    /* ...Edit text - X coord. */
  85.  
  86. #define Res_W_ARTAbrot     256                        /* Window */
  87.  
  88. /* Picture resource IDs */
  89. #define Pict_Picture     30001
  90.  
  91. /* Sound resource IDs */
  92. #define Snd_Bart__Cooool     256
  93.  
  94.  
  95. /* ======================================================= */
  96.  
  97.  
  98. typedef struct UserEventRec{                        /* User Event Record definition */
  99.     short    ID;                                /* ID for the type of user event */
  100.     short    ID2;                                /* Optionally used, 2nd ID, sometimes used */
  101.     long    Data1;                                /* Optionally used, Extra data */
  102.     long    Data2;                                /* Optionally used, Extra data */
  103.     Handle    theHandle;                        /* Optionally used, Handle */
  104.     struct UserEventRec    **Next;                /* Handle of next event in the list */
  105. }UserEventRec,*UserEventPRec,**UserEventHRec;
  106.  
  107. extern Boolean    Doing_MovableModal;                /* For Movable Modal dialogs */
  108. extern UserEventHRec    UserEventList;                /* User Event record list start */
  109. extern EventRecord    myEvent;                        /* Event record for all events */
  110. extern Boolean    WNE;                                /* WaitNextEvent trap is available */
  111. extern short    SleepValue;                        /* Sleep value for Wait on events */
  112. extern Boolean    doneFlag;                        /* Exit program flag */
  113. extern TEHandle    theInput;                        /* Used in text edit selections */
  114. extern Rect    tempRect;                            /* Temporary rect, not for long term use */
  115. extern Str255    sTemp;                            /* Temporary string, not for long term use */
  116. extern Boolean        HasColorQD;                    /* Flag for Color QuickDraw being available */
  117. extern Boolean        HasFPU;                        /* Flag for Floating Point Math Chip being available */
  118. extern Boolean        HoldOffUserEvents;            /* Flag for holding off UserEvents */
  119. extern Boolean        InTheForeground;                /* Flag for running in MultiFinder foreground */
  120. extern short        tempChar;                        /* Temporary use character */
  121. extern long        LTemp;                            /* Temporary use long variable */
  122. extern RGBColor        Black_ForeColor,White_BackColor;/* Standard colors */
  123.  
  124. extern SFTypeList    typeList;                        /* For use in opening files */
  125. extern OSErr        ErrorCode;                        /* For use in reading and writing files */
  126. extern SFReply    Reply;                            /* For use in getting file names */
  127. extern StandardFileReply    theStandardFileReply;    /* For use in getting file names */
  128. extern short    inputRefNum;                        /* For the input file */
  129. extern short    outputRefNum;                        /* For the output file */
  130. extern Str255 inputFileName;                        /* For the input file */
  131. extern Str255 outputFileName;                        /* For the output file */
  132.  
  133. extern RgnHandle    cursorRgn;                        /* Cursor region for WaitNextEvent */
  134. extern Boolean        HasAppleEvents;                /* Whether AppleEvents are available */
  135. extern Boolean        HasAliasMgr;                    /* Whether AliasMgr is available */
  136. extern Boolean        HasEditionMgr;                /* Whether EditionMgr is available */
  137. extern short        ReplyMode;                        /* Reply mode for AppleEvents */
  138. extern Boolean        HasNewStdFile;                /* Whether HasNewStdFile is available */
  139. extern Boolean        HasPPCToolbox;                /* Whether PPCToolbox is available */
  140. extern Boolean        Has32BitQuickDraw;            /* Whether 32Bit QuickDraw is available */
  141. extern Boolean        HasGestalt;                    /* Whether Gestalt is available */
  142.  
  143. extern THPrint    hPrint;                            /* Printer record */
  144. extern Boolean    PrinterIsOpen;                    /* Whether printer is open or not */
  145. extern short    PageCount;                            /* For adding in page number */
  146. extern short    LineCount;                            /* For printing */
  147. extern short    PrinterVRes,PrinterHRes;            /* Printer resolution */
  148. extern short    MaxPrintCharacters;                /* Max characters on one line */
  149. extern short    MaxLines;                            /* Maximum lines in one page */
  150. extern TPPrPort        pPrPort;                    /* Printer port */
  151. extern TPrStatus        prStatus;                    /* Printing status */
  152. extern short    CopyCount;                            /* Number of copies to do */
  153.  
  154. extern MenuHandle    Menu_Apple;                    /* Menu handle */
  155. extern MenuHandle    Menu_File;                    /* Menu handle */
  156. extern MenuHandle    Menu_Commands;                /* Menu handle */
  157.  
  158. /* Window variables for the window titled  "ARTAbrot" */
  159. extern WindowPtr    WPtr_ARTAbrot;                    /* Window pointer */
  160.  
  161. /* Variables for the modeless dialog titled  "About ARTAbrot" */
  162. extern WindowPtr    WPtr_About_ARTAbrot;            /* Modeless Dialog window pointer */
  163.  
  164. /* Variables for the alert titled  "Alert" */
  165.  
  166. /* Variables for the modeless dialog titled  "Enter Coordinates" */
  167. extern WindowPtr    WPtr_Enter_Coordinat;            /* Modeless Dialog window pointer */
  168. extern Rect    DTE_Rect_Edit_Text4;                /* ...Edit text - iterations */
  169. extern Rect    DTE_Rect_Edit_Text3;                /* ...Edit text - width */
  170. extern Rect    DTE_Rect_Edit_Text2;                /* ...Edit text - Y coord. */
  171. extern Rect    DTE_Rect_Edit_Text;                    /* ...Edit text - X coord. */
  172.  
  173.  
  174. /* Mandelbrot coordinates. */
  175. extern float fxcenter, fycenter, fwidth; /* X center, Y center, and width of fractal. */
  176. extern int fiters;                /* Maximum number of iterations. */
  177. extern int new_coordinates;
  178.  
  179.  
  180. /* Prototypes */
  181.  
  182. /* Handle an activate of the window */
  183. void DoActivate(void);
  184.  
  185. /* See if WaitNextEvent is available */
  186. Boolean IsWNEIsImplemented(void);
  187.  
  188. /* Check for user events */
  189. void Handle_User_Event(void);
  190.  
  191. /* Handle a hit in the window */
  192. void DoInContent(WindowPtr whichWindow,EventRecord *myEvent);
  193.  
  194. /* ======================================================= */
  195.  
  196. /* Copy Pascal strings */
  197. void PStrCopy(Str255 *SourceString, Str255 *DestString);
  198.  
  199. /* Concat Pascal strings */
  200. void PStrCat(Str255 *SourceString, Str255 *DestString);
  201.  
  202. /* Compare Pascal strings for exact match, case sensitive */
  203. Boolean PStrCmp(StringPtr Source1String,StringPtr Source2String);
  204.  
  205. Boolean CheckTrapAvailable (short trapNumber, short tType);/* See if a trap is available */
  206.  
  207. void GetUserEvent(UserEventPRec TheUserEvent);        /* See if any user events are available */
  208.  
  209. void Add_UserEvent(short ID, short ID2, long  Data1, long Data2, Handle  theHandle);/* Add a user event */
  210.  
  211. void Play_The_Sound(short ResID);                    /* Play my sound */
  212.  
  213. /* This is a routine used to get a string from a TE area, limited to 250 characters */
  214. void Get_TE_String(TEHandle theTEArea, Str255 *theString);/* Get the TE String */
  215.  
  216. /* This is a routine used to create a TE area */
  217. void Make_TE_Area(TEHandle *theTEArea, Rect *Position, short theFontSize, short theFont, short DefaultStringID);/* Make the TE area */
  218.  
  219. void SetupTheItem (DialogPtr theDialog, short ItemID, Boolean SizeIt, Boolean ShowIt, Boolean EnableIt,/* Setup a dialog or alert item */
  220. Boolean SetTheMax,Rect * thePosition , long ExtraData , short StringID );/* Setup a dialog or alert item */
  221.  
  222. void CenterOnColorScreen ( WindowPtr theWindow );    /* Center a window onto the deepest color screen */
  223.  
  224. void GetDeepestColorScreenRect (Rect *DeepRect);    /* Get the deepest color screen rect */
  225.  
  226.